/*
This file is part of La Linea.

La Linea is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

La Linea is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with La Linea.  If not, see <http://www.gnu.org/licenses/>.
*/

#include "FrameCacheData.h"

FrameCacheData::FrameCacheData(Frame* f): _ref(f) {
	if(_ref){
		FrameCacheData* old = _ref->getCache();
		if(old){
			delete old;
		}
		_ref->setCache(this);
	}
	_displayListId = -1;
	_vboCount = 0;
	_vboIds = 0;
	_vboIndices = 0;
}

FrameCacheData::~FrameCacheData(){	
	if(_displayListId != -1) glDeleteLists(_displayListId, 1);

	if(_vboCount > 0){
		glDeleteBuffers(_vboCount, _vboIds);
	}

	if(_vboIds) delete[] _vboIds;
	if(_vboIndices) delete[] _vboIndices;

	_ref->setCache(NULL);
}
